# -*- coding: utf-8 -*-
# 读取停用词文件“stop_words.txt”，该文件为单列无表头的文件
# 对上一关获得的分词后的训练集trainX_txt和测试集testX_txt，
# 去掉停用词和数值，同时对每条标题（词列表），变成字符串（词之间用空格分开），
# 最后返回结果，同时也返回上一关的Y值（r[1]）

def return_values():
    import step10_1
    import re

    # 读取上一关的结果
    r = step10_1.return_values()
    trainX_txt_raw, Y, testX_txt_raw = r[0], r[1], r[2]

    # 读取停用词文件
    with open("stop_words.txt", "r", encoding="utf-8") as f:
        stop_words = set(f.read().splitlines())

    # 定义过滤函数
    def filter_words(word_list):
        return " ".join(
            word for word in word_list
            if word not in stop_words and not re.match(r"^\d+$", word)
        )

    # 对训练集和测试集进行停用词过滤和数值去除
    trainX_txt = [filter_words(title) for title in trainX_txt_raw]
    testX_txt = [filter_words(title) for title in testX_txt_raw]

    return (trainX_txt, Y, testX_txt)